package com._54programer.ioc.config.config.lifecycle;

import com._54programer.ioc.config.beans.lifecycle.Dog;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;

/**
 * BeanPostProcessor【interface】：bean的后置处理器；
 * 		在bean初始化前后进行一些处理工作；
 * 		postProcessBeforeInitialization:在初始化之前工作
 * 		postProcessAfterInitialization:在初始化之后工作
 *
 * Spring底层对 BeanPostProcessor 的使用；
 * 		bean赋值，注入其他组件，@Autowired，生命周期注解功能，@Async,xxx BeanPostProcessor;
 */
@Configurable
@ComponentScan("com._54programer.ioc.beans.lifecycle")
public class BeanConfig4 {

    @Bean
    public Dog dog(){
        return new Dog();
    }
}
